# 2021年省赛-程序设计题 左孩子右兄弟
import sys
sys.setrecursionlimit(10**5)
n = int(input())
a = [[] for _ in range(n + 1)]

for i in range(2, n + 1):
    v = int(input())
    a[v].append(i)

def dfs(i):
    if not a[i]:  # 递归终止条件：叶子节点
        return 0

    maxn = 0
    for j in a[i]:  # 遍历所有子节点
        maxn = max(maxn, dfs(j))  # 递归获取子树最大高度

    return len(a[i]) + maxn  # 核心公式：子节点数 + 最高子树高度

print(dfs(1))